package com.hongyuan.sellfitness.data;

import androidx.annotation.NonNull;
import androidx.annotation.VisibleForTesting;

import com.hongyuan.mvvmhabitx.base.BaseModel;
import com.hongyuan.sellfitness.data.http.HttpDataSource;
import com.hongyuan.sellfitness.data.sourse.LocalDataSource;
import com.hongyuan.sellfitness.ui.find.beans.CircleBeans;
import com.hongyuan.sellfitness.ui.find.beans.CircleDetailBean;
import com.hongyuan.sellfitness.ui.find.beans.CirclePeopleBean;
import com.hongyuan.sellfitness.ui.find.beans.FindChildBean;
import com.hongyuan.sellfitness.ui.find.beans.FindChildTopBean;
import com.hongyuan.sellfitness.ui.find.beans.FindUserBeans;
import com.hongyuan.sellfitness.ui.find.beans.ItemCommentBean;
import com.hongyuan.sellfitness.ui.find.beans.PostCommentBean;
import com.hongyuan.sellfitness.ui.find.beans.PostDetailBean;
import com.hongyuan.sellfitness.ui.find.beans.SendPostBean;
import com.hongyuan.sellfitness.ui.home.beans.BannerBeans;
import com.hongyuan.sellfitness.ui.home.beans.BuyOrderBean;
import com.hongyuan.sellfitness.ui.home.beans.BuyLessonPriceBean;
import com.hongyuan.sellfitness.ui.home.beans.CardDetailsBean;
import com.hongyuan.sellfitness.ui.home.beans.CoachDeatilsBean;
import com.hongyuan.sellfitness.ui.home.beans.CoachIdleTimeBean;
import com.hongyuan.sellfitness.ui.home.beans.CoachLessonItemBean;
import com.hongyuan.sellfitness.ui.home.beans.CoachListBean;
import com.hongyuan.sellfitness.ui.home.beans.CoachidleTimeContentBean;
import com.hongyuan.sellfitness.ui.home.beans.CouponBean;
import com.hongyuan.sellfitness.ui.home.beans.GroupClassBean;
import com.hongyuan.sellfitness.ui.home.beans.GroupClassTopBean;
import com.hongyuan.sellfitness.ui.home.beans.GroupSiteBean;
import com.hongyuan.sellfitness.ui.home.beans.HomeMyCardsBean;
import com.hongyuan.sellfitness.ui.home.beans.MemberOsBean;
import com.hongyuan.sellfitness.ui.home.beans.MyMemberCardList;
import com.hongyuan.sellfitness.ui.home.beans.PhoneMessageTokenBean;
import com.hongyuan.sellfitness.ui.home.beans.PriviteLessonBean;
import com.hongyuan.sellfitness.ui.home.beans.QRScanResultBean;
import com.hongyuan.sellfitness.ui.home.beans.SalerBean;
import com.hongyuan.sellfitness.ui.home.beans.ShowQrBean;
import com.hongyuan.sellfitness.ui.home.beans.StoreCardBean;
import com.hongyuan.sellfitness.ui.home.beans.StoreGroupDetailBean;
import com.hongyuan.sellfitness.ui.home.beans.StoreInfoBean;
import com.hongyuan.sellfitness.ui.home.beans.StoreLessonDetailBean;
import com.hongyuan.sellfitness.ui.home.beans.StorePriviteLessonBean;
import com.hongyuan.sellfitness.ui.home.beans.CheckQrBean;
import com.hongyuan.sellfitness.ui.main.beans.AlipayBean;
import com.hongyuan.sellfitness.ui.main.beans.AuthorityBean;
import com.hongyuan.sellfitness.ui.main.beans.CheckVersionBeans;
import com.hongyuan.sellfitness.ui.main.beans.CoachImgBean;
import com.hongyuan.sellfitness.ui.main.beans.MemberLoginBean;
import com.hongyuan.sellfitness.ui.main.beans.MessageNumBeans;
import com.hongyuan.sellfitness.ui.main.beans.NoDataBean;
import com.hongyuan.sellfitness.ui.main.beans.ReturnImgsBean;
import com.hongyuan.sellfitness.ui.main.beans.ReturnMoreImgBean;
import com.hongyuan.sellfitness.ui.main.beans.TokenBean;
import com.hongyuan.sellfitness.ui.message.beans.MessageCommentaryBean;
import com.hongyuan.sellfitness.ui.message.beans.MessageFansBean;
import com.hongyuan.sellfitness.ui.message.beans.MessageLetterBean;
import com.hongyuan.sellfitness.ui.message.beans.MessagePraiseBean;
import com.hongyuan.sellfitness.ui.message.beans.MsgDetailBean;
import com.hongyuan.sellfitness.ui.message.beans.MsgPraiseDeatailBean;
import com.hongyuan.sellfitness.ui.person.beans.AddReservationLessonBean;
import com.hongyuan.sellfitness.ui.person.beans.CancelReservationBean;
import com.hongyuan.sellfitness.ui.person.beans.CouponHubBean;
import com.hongyuan.sellfitness.ui.person.beans.CouponHubTop;
import com.hongyuan.sellfitness.ui.person.beans.IsAttentionBean;
import com.hongyuan.sellfitness.ui.person.beans.KeFuBean;
import com.hongyuan.sellfitness.ui.person.beans.MInfoBean;
import com.hongyuan.sellfitness.ui.person.beans.MyCardDetailBean;
import com.hongyuan.sellfitness.ui.person.beans.MyCouponBeans;
import com.hongyuan.sellfitness.ui.person.beans.MyGroupBean;
import com.hongyuan.sellfitness.ui.person.beans.MyOrderDeatilBean;
import com.hongyuan.sellfitness.ui.person.beans.MyOrdersBean;
import com.hongyuan.sellfitness.ui.person.beans.MyReservationBean;
import com.hongyuan.sellfitness.ui.person.beans.PersonBean;
import com.hongyuan.sellfitness.ui.person.beans.ReservationLessonBean;
import com.hongyuan.sellfitness.ui.person.beans.UserInfoBean;
import com.hongyuan.sellfitness.wxapi.WecathPayBean;

import java.util.List;
import java.util.Map;

import io.reactivex.Observable;
import okhttp3.RequestBody;

public class MyRepository extends BaseModel implements HttpDataSource, LocalDataSource {

    private volatile static MyRepository INSTANCE = null;

    private final HttpDataSource mHttpDataSource;

    private final LocalDataSource mLocalDataSource;

    private MyRepository(@NonNull HttpDataSource mHttpDataSource, @NonNull LocalDataSource mLocalDataSource){
        this.mHttpDataSource = mHttpDataSource;
        this.mLocalDataSource = mLocalDataSource;
    }

    public static MyRepository getInstance(HttpDataSource mHttpDataSource, LocalDataSource mLocalDataSource){
        if(INSTANCE == null){
            synchronized (MyRepository.class){
                if(INSTANCE == null){
                    INSTANCE = new MyRepository(mHttpDataSource,mLocalDataSource);
                }
            }
        }

        return INSTANCE;
    }

    @VisibleForTesting
    public static void destroyInstance(){
        INSTANCE = null;
    }

    /************************************接口请求操作***********************************************/

    @Override
    public Observable<MyBaseResponse<BannerBeans>> get_img_list(Map<String,String> params) {
        return mHttpDataSource.get_img_list(params);
    }

    @Override
    public Observable<MyBaseResponse<TokenBean>> api_token(Map<String, String> params) {
        return mHttpDataSource.api_token(params);
    }

    @Override
    public Observable<MyBaseResponse<MemberLoginBean>> memberlogin(Map<String, String> params) {
        return mHttpDataSource.memberlogin(params);
    }

    @Override
    public Observable<MyBaseResponse<List<GroupClassTopBean>>> get_plan_date(Map<String, String> params) {
        return mHttpDataSource.get_plan_date(params);
    }

    @Override
    public Observable<MyBaseResponse<GroupClassBean>> get_course_super_list(Map<String, String> params) {
        return mHttpDataSource.get_course_super_list(params);
    }

    @Override
    public Observable<MyBaseResponse<PriviteLessonBean>> get_my_course_privite_list(Map<String, String> params) {
        return mHttpDataSource.get_my_course_privite_list(params);
    }

    @Override
    public Observable<MyBaseResponse<PersonBean>> get_member_index_info(Map<String, String> params) {
        return mHttpDataSource.get_member_index_info(params);
    }

    @Override
    public Observable<MyBaseResponse<MemberOsBean>> get_member_os(Map<String, String> params) {
        return mHttpDataSource.get_member_os(params);
    }

    @Override
    public Observable<MyBaseResponse<StoreInfoBean>> get_offline_store_info(Map<String, String> params) {
        return mHttpDataSource.get_offline_store_info(params);
    }

    @Override
    public Observable<MyBaseResponse<CoachListBean>> get_coach_list(Map<String, String> params) {
        return mHttpDataSource.get_coach_list(params);
    }

    @Override
    public Observable<MyBaseResponse<MyMemberCardList>> get_my_card_list(Map<String, String> params) {
        return mHttpDataSource.get_my_card_list(params);
    }

    @Override
    public Observable<MyBaseResponse<StorePriviteLessonBean>> get_course_privite_list(Map<String, String> params) {
        return mHttpDataSource.get_course_privite_list(params);
    }

    @Override
    public Observable<MyBaseResponse<StoreLessonDetailBean>> get_course_privite_info(Map<String, String> params) {
        return mHttpDataSource.get_course_privite_info(params);
    }

    @Override
    public Observable<MyBaseResponse<CheckQrBean>> check_come_or_off_store(Map<String, String> params) {
        return mHttpDataSource.check_come_or_off_store(params);
    }

    @Override
    public Observable<MyBaseResponse<HomeMyCardsBean>> get_come_card(Map<String, String> params) {
        return mHttpDataSource.get_come_card(params);
    }

    @Override
    public Observable<MyBaseResponse<ShowQrBean>> show_code(Map<String, String> params) {
        return mHttpDataSource.show_code(params);
    }

    @Override
    public Observable<MyBaseResponse<QRScanResultBean>> check_do_card(Map<String, String> params) {
        return mHttpDataSource.check_do_card(params);
    }

    @Override
    public Observable<MyBaseResponse<StoreGroupDetailBean>> get_course_super_info(Map<String, String> params) {
        return mHttpDataSource.get_course_super_info(params);
    }

    @Override
    public Observable<MyBaseResponse<StoreCardBean>> get_card_list(Map<String, String> params) {
        return mHttpDataSource.get_card_list(params);
    }

    @Override
    public Observable<MyBaseResponse<NoDataBean>> super_course_xy_qd(Map<String, String> params) {
        return mHttpDataSource.super_course_xy_qd(params);
    }

    @Override
    public Observable<MyBaseResponse<NoDataBean>> cancel_course_super_order(Map<String, String> params) {
        return mHttpDataSource.cancel_course_super_order(params);
    }

    @Override
    public Observable<MyBaseResponse<NoDataBean>> add_remind_cs(Map<String, String> params) {
        return mHttpDataSource.add_remind_cs(params);
    }

    @Override
    public Observable<MyBaseResponse<NoDataBean>> del_remind_cs(Map<String, String> params) {
        return mHttpDataSource.del_remind_cs(params);
    }

    @Override
    public Observable<MyBaseResponse<GroupSiteBean>> get_cs_number(Map<String, String> params) {
        return mHttpDataSource.get_cs_number(params);
    }

    @Override
    public Observable<MyBaseResponse<NoDataBean>> sign_up_course_super(Map<String, String> params) {
        return mHttpDataSource.sign_up_course_super(params);
    }

    @Override
    public Observable<MyBaseResponse<CardDetailsBean>> get_card_info(Map<String, String> params) {
        return mHttpDataSource.get_card_info(params);
    }

    @Override
    public Observable<MyBaseResponse<CoachDeatilsBean>> get_coach_index_info(Map<String, String> params) {
        return mHttpDataSource.get_coach_index_info(params);
    }

    @Override
    public Observable<MyBaseResponse<CoachLessonItemBean>> get_coach_course_privite(Map<String, String> params) {
        return mHttpDataSource.get_coach_course_privite(params);
    }

    @Override
    public Observable<MyBaseResponse<CoachIdleTimeBean>> get_coach_last_kong_time(Map<String, String> params) {
        return mHttpDataSource.get_coach_last_kong_time(params);
    }

    @Override
    public Observable<MyBaseResponse<List<CoachidleTimeContentBean>>> get_coach_timeplan_day_list(Map<String, String> params) {
        return mHttpDataSource.get_coach_timeplan_day_list(params);
    }

    @Override
    public Observable<MyBaseResponse<FindChildTopBean>> get_my_friends(Map<String, String> params) {
        return mHttpDataSource.get_my_friends(params);
    }

    @Override
    public Observable<MyBaseResponse<FindChildBean>> get_circle_list(Map<String, String> params) {
        return mHttpDataSource.get_circle_list(params);
    }

    @Override
    public Observable<MyBaseResponse<FindUserBeans>> find_member_list(Map<String, String> params) {
        return mHttpDataSource.find_member_list(params);
    }

    @Override
    public Observable<MyBaseResponse<FindChildBean>> find_circle_list(Map<String, String> params) {
        return mHttpDataSource.find_circle_list(params);
    }

    @Override
    public Observable<MyBaseResponse<CircleBeans>> get_circle_category_list(Map<String, String> params) {
        return mHttpDataSource.get_circle_category_list(params);
    }

    @Override
    public Observable<MyBaseResponse<UserInfoBean>> circle_member_index(Map<String, String> params) {
        return mHttpDataSource.circle_member_index(params);
    }

    @Override
    public Observable<MyBaseResponse<UserInfoBean>> circle_other_member_index(Map<String, String> params) {
        return mHttpDataSource.circle_other_member_index(params);
    }

    @Override
    public Observable<MyBaseResponse<FindChildBean>> get_member_circle_list(Map<String, String> params) {
        return mHttpDataSource.get_member_circle_list(params);
    }

    @Override
    public Observable<MyBaseResponse<FindChildBean>> get_other_member_circle_list(Map<String, String> params) {
        return mHttpDataSource.get_other_member_circle_list(params);
    }

    @Override
    public Observable<MyBaseResponse<NoDataBean>> add_circle_praise(Map<String, String> params) {
        return mHttpDataSource.add_circle_praise(params);
    }

    @Override
    public Observable<MyBaseResponse<NoDataBean>> cancel_circle_praise(Map<String, String> params) {
        return mHttpDataSource.cancel_circle_praise(params);
    }

    @Override
    public Observable<MyBaseResponse<NoDataBean>> add_friend(Map<String, String> params) {
        return mHttpDataSource.add_friend(params);
    }

    @Override
    public Observable<MyBaseResponse<FindChildTopBean>> get_gz_my(Map<String, String> params) {
        return mHttpDataSource.get_gz_my(params);
    }

    @Override
    public Observable<MyBaseResponse<IsAttentionBean>> is_my_friend(Map<String, String> params) {
        return mHttpDataSource.is_my_friend(params);
    }

    @Override
    public Observable<MyBaseResponse<ReturnImgsBean>> upfile_oss(Map<String, RequestBody> params) {
        return mHttpDataSource.upfile_oss(params);
    }

    @Override
    public Observable<MyBaseResponse<ReturnMoreImgBean>> upfile_oss_more(Map<String, RequestBody> params) {
        return mHttpDataSource.upfile_oss_more(params);
    }

    @Override
    public Observable<MyBaseResponse<NoDataBean>> update_member_head(Map<String, String> params) {
        return mHttpDataSource.update_member_head(params);
    }

    @Override
    public Observable<MyBaseResponse<NoDataBean>> update_member_name(Map<String, String> params) {
        return mHttpDataSource.update_member_name(params);
    }

    @Override
    public Observable<MyBaseResponse<NoDataBean>> update_member_sex(Map<String, String> params) {
        return mHttpDataSource.update_member_sex(params);
    }

    @Override
    public Observable<MyBaseResponse<NoDataBean>> update_member_birth(Map<String, String> params) {
        return mHttpDataSource.update_member_birth(params);
    }

    @Override
    public Observable<MyBaseResponse<NoDataBean>> update_m_info(Map<String, String> params) {
        return mHttpDataSource.update_m_info(params);
    }

    @Override
    public Observable<MyBaseResponse<NoDataBean>> update_member_sign(Map<String, String> params) {
        return mHttpDataSource.update_member_sign(params);
    }

    @Override
    public Observable<MyBaseResponse<PostDetailBean>> get_circle_info(Map<String, String> params) {
        return mHttpDataSource.get_circle_info(params);
    }

    @Override
    public Observable<MyBaseResponse<PostCommentBean>> get_circle_reviewList(Map<String, String> params) {
        return mHttpDataSource.get_circle_reviewList(params);
    }

    @Override
    public Observable<MyBaseResponse<ItemCommentBean>> add_circle_review(Map<String, String> params) {
        return mHttpDataSource.add_circle_review(params);
    }

    @Override
    public Observable<MyBaseResponse<CircleDetailBean>> get_circle_category_info(Map<String, String> params) {
        return mHttpDataSource.get_circle_category_info(params);
    }

    @Override
    public Observable<MyBaseResponse<CirclePeopleBean>> get_circle_member_list(Map<String, String> params) {
        return mHttpDataSource.get_circle_member_list(params);
    }

    @Override
    public Observable<MyBaseResponse<SendPostBean>> add_circle(Map<String, String> params) {
        return mHttpDataSource.add_circle(params);
    }

    @Override
    public Observable<MyBaseResponse<List<MessageLetterBean>>> get_msg_ct_list(Map<String, String> params) {
        return mHttpDataSource.get_msg_ct_list(params);
    }

    @Override
    public Observable<MyBaseResponse<MessageCommentaryBean>> get_review_msg_list(Map<String, String> params) {
        return mHttpDataSource.get_review_msg_list(params);
    }

    @Override
    public Observable<MyBaseResponse<MessagePraiseBean>> get_praise_msg_list(Map<String, String> params) {
        return mHttpDataSource.get_praise_msg_list(params);
    }

    @Override
    public Observable<MyBaseResponse<MessageFansBean>> get_friend_msg_list(Map<String, String> params) {
        return mHttpDataSource.get_friend_msg_list(params);
    }

    @Override
    public Observable<MyBaseResponse<NoDataBean>> update_msg_read(Map<String, String> params) {
        return mHttpDataSource.update_msg_read(params);
    }

    @Override
    public Observable<MyBaseResponse<MsgDetailBean>> get_msg_list(Map<String, String> params) {
        return mHttpDataSource.get_msg_list(params);
    }

    @Override
    public Observable<MyBaseResponse<MsgPraiseDeatailBean>> get_praise_list(Map<String, String> params) {
        return mHttpDataSource.get_praise_list(params);
    }

    @Override
    public Observable<MyBaseResponse<MyCardDetailBean>> get_my_card_info(Map<String, String> params) {
        return mHttpDataSource.get_my_card_info(params);
    }

    @Override
    public Observable<MyBaseResponse<BuyLessonPriceBean>> get_price_by_num(Map<String, String> params) {
        return mHttpDataSource.get_price_by_num(params);
    }

    @Override
    public Observable<MyBaseResponse<CouponBean>> use_coupon_list(Map<String, String> params) {
        return mHttpDataSource.use_coupon_list(params);
    }

    @Override
    public Observable<MyBaseResponse<BuyOrderBean>> buy_privite_course(Map<String, String> params) {
        return mHttpDataSource.buy_privite_course(params);
    }

    @Override
    public Observable<MyBaseResponse<ReservationLessonBean>> get_reservation_lesson_info(Map<String, String> params) {
        return mHttpDataSource.get_reservation_lesson_info(params);
    }

    @Override
    public Observable<MyBaseResponse<AddReservationLessonBean>> add_course_privite_appointment(Map<String, String> params) {
        return mHttpDataSource.add_course_privite_appointment(params);
    }

    @Override
    public Observable<MyBaseResponse<MyReservationBean>> get_member_appointment_course_privite_list(Map<String, String> params) {
        return mHttpDataSource.get_member_appointment_course_privite_list(params);
    }

    @Override
    public Observable<MyBaseResponse<NoDataBean>> privite_course_qd(Map<String, String> params) {
        return mHttpDataSource.privite_course_qd(params);
    }

    @Override
    public Observable<MyBaseResponse<CancelReservationBean>> get_cancel_reason(Map<String, String> params) {
        return mHttpDataSource.get_cancel_reason(params);
    }

    @Override
    public Observable<MyBaseResponse<NoDataBean>> cancel_course_privite_appointment_new(Map<String, String> params) {
        return mHttpDataSource.cancel_course_privite_appointment_new(params);
    }

    @Override
    public Observable<MyBaseResponse<MyGroupBean>> get_member_sign_up_course_super_list(Map<String, String> params) {
        return mHttpDataSource.get_member_sign_up_course_super_list(params);
    }

    @Override
    public Observable<MyBaseResponse<MyOrdersBean>> get_order_list(Map<String, String> params) {
        return mHttpDataSource.get_order_list(params);
    }

    @Override
    public Observable<MyBaseResponse<NoDataBean>> cancle_order(Map<String, String> params) {
        return mHttpDataSource.cancle_order(params);
    }

    @Override
    public Observable<MyBaseResponse<MyOrderDeatilBean>> get_order_info(Map<String, String> params) {
        return mHttpDataSource.get_order_info(params);
    }

    @Override
    public Observable<MyBaseResponse<KeFuBean>> get_online_kf(Map<String, String> params) {
        return mHttpDataSource.get_online_kf(params);
    }

    @Override
    public Observable<MyBaseResponse<MyCouponBeans>> my_coupon_list(Map<String, String> params) {
        return mHttpDataSource.my_coupon_list(params);
    }

    @Override
    public Observable<MyBaseResponse<List<CouponHubTop>>> coupon_for_list(Map<String, String> params) {
        return mHttpDataSource.coupon_for_list(params);
    }

    @Override
    public Observable<MyBaseResponse<CouponHubBean>> os_coupon_list(Map<String, String> params) {
        return mHttpDataSource.os_coupon_list(params);
    }

    @Override
    public Observable<MyBaseResponse<NoDataBean>> get_coupon(Map<String, String> params) {
        return mHttpDataSource.get_coupon(params);
    }

    @Override
    public Observable<MyBaseResponse<MInfoBean>> get_m_info(Map<String, String> params) {
        return mHttpDataSource.get_m_info(params);
    }

    @Override
    public Observable<MyBaseResponse<SalerBean>> get_saler_list(Map<String, String> params) {
        return mHttpDataSource.get_saler_list(params);
    }

    @Override
    public Observable<MyBaseResponse<BuyOrderBean>> add_card_order(Map<String, String> params) {
        return mHttpDataSource.add_card_order(params);
    }

    @Override
    public Observable<MyBaseResponse<PhoneMessageTokenBean>> get_token(Map<String, String> params) {
        return mHttpDataSource.get_token(params);
    }

    @Override
    public Observable<MyBaseResponse<NoDataBean>> send_regi_msg(Map<String, String> params) {
        return mHttpDataSource.send_regi_msg(params);
    }

    @Override
    public Observable<MyBaseResponse<NoDataBean>> do_find_password(Map<String, String> params) {
        return mHttpDataSource.do_find_password(params);
    }

    @Override
    public Observable<MyBaseResponse<MemberLoginBean>> memberlogin_dxm(Map<String, String> params) {
        return mHttpDataSource.memberlogin_dxm(params);
    }

    @Override
    public Observable<MyBaseResponse<AuthorityBean>> verify_role(Map<String, String> params) {
        return mHttpDataSource.verify_role(params);
    }

    @Override
    public Observable<MyBaseResponse<CheckVersionBeans>> check_app_version(Map<String, String> params) {
        return mHttpDataSource.check_app_version(params);
    }

    @Override
    public Observable<MyBaseResponse<MessageNumBeans>> get_msg_unread_info(Map<String, String> params) {
        return mHttpDataSource.get_msg_unread_info(params);
    }

    @Override
    public Observable<MyBaseResponse<WecathPayBean>> getPrePayOrder(Map<String, String> params) {
        return mHttpDataSource.getPrePayOrder(params);
    }

    @Override
    public Observable<MyBaseResponse<AlipayBean>> unifiedorder(Map<String, String> params) {
        return mHttpDataSource.unifiedorder(params);
    }

    @Override
    public Observable<MyBaseResponse<CoachImgBean>> get_coach_photo_list(Map<String, String> params) {
        return mHttpDataSource.get_coach_photo_list(params);
    }

    @Override
    public Observable<MyBaseResponse<NoDataBean>> del_photos(Map<String, String> params) {
        return mHttpDataSource.del_photos(params);
    }

    @Override
    public Observable<MyBaseResponse<NoDataBean>> add_coach_photo(Map<String, String> params) {
        return mHttpDataSource.add_coach_photo(params);
    }


    /************************************数据存储操作***********************************************/

    @Override
    public void saveToken(TokenBean bean) {
        mLocalDataSource.saveToken(bean);
    }

    @Override
    public TokenBean getToken() {
        return mLocalDataSource.getToken();
    }

    @Override
    public void saveUser(MemberLoginBean bean) {
        mLocalDataSource.saveUser(bean);
    }

    @Override
    public MemberLoginBean getUser() {
        return mLocalDataSource.getUser();
    }
}
